cc.Class({
    extends: cc.Component,

    properties: {
        tips: cc.Label,
        btn2: cc.Button,
        btn3: cc.Button
    },

    // use this for initialization
    onLoad: function () {
        // 第一种监听点击事件的方法就是通过属性检查器中的 Click Events 添加监听

        // 第二种方式就是通过代码创建一个事件监听器，将监听器添加到按钮的事件发放队里中
        var clickEventHandler = new cc.Component.EventHandler();
        clickEventHandler.target = this.node; //这个 node 节点是你的事件处理代码组件所属的节点
        clickEventHandler.component = "BtnLayer";//这个是代码文件名
        clickEventHandler.handler = "onBtn2Clicked";
        this.btn2.clickEvents.push(clickEventHandler);

        // 第三种就是直接监听节点的事件
        this.btn3.node.on(cc.Node.EventType.TOUCH_END, this.onBtn3Clicked, this);
    },

    onBtn1Clicked: function(event){
        cc.log('btn1 clicked');
        // 获取节点的方式也有三种，第一种是通过在属性检查器中定义引用的方式，将对应的节点绑定到属性检查器中
        this.tips.string = "小拳拳捶你胸口";
    },

    onBtn2Clicked: function(event){
        cc.log('btn2 clicked');

        // 获取节点的第二种方式，通过父节点的 getChildByName 方法获取节点，返回值是 cc.Node 类型的实例，传入的名字就是控件的名字
        var tips = this.node.getChildByName('tips');
        tips.getComponent('cc.Label').string = "攻城锤怼你胸口";
    },

    onBtn3Clicked: function(event){
        cc.log('btn3 clicked');
        // 获取节点的第三种方式，使用静态方法获取，本质与第二种方法相同
        var tips = cc.find('tips', this.node);
        tips.getComponent('cc.Label').string = "火箭弹戳你胸口";
    },
});
